package org.nepu.scr.indexrate.raterisk;

import lombok.AllArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.nepu.scr.DTO.ReturnDataDTO;
import org.nepu.scr.indexrate.raterisk.prerisk.params.RiskData;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

@Slf4j
@Service
@AllArgsConstructor
public class RiskBuildService {


    @SneakyThrows
    public List<ReturnDataDTO> buildData(RiskData data){

        List<ReturnDataDTO> rData = new ArrayList<>();


        //构建B------B2
        ReturnDataDTO B221 = new ReturnDataDTO("井架",data.getB221(),null);
        ReturnDataDTO B222 = new ReturnDataDTO("游车大钩",data.getB222(),null);
        ReturnDataDTO B223 = new ReturnDataDTO("顶驱",data.getB223(),null);
        ReturnDataDTO B224 = new ReturnDataDTO("转盘",data.getB224(),null);
        ReturnDataDTO B225 = new ReturnDataDTO("井口工具",data.getB225(),null);
        ReturnDataDTO B226 = new ReturnDataDTO("循环系统",data.getB226(),null);
        ReturnDataDTO B227 = new ReturnDataDTO("BOP吊",data.getB227(),null);
        ReturnDataDTO B228 = new ReturnDataDTO("防喷器远程控制系统",data.getB228(),null);
        ReturnDataDTO B229 = new ReturnDataDTO("井控设备",data.getB229(),null);
        ReturnDataDTO B22a = new ReturnDataDTO("动力及辅助设备",data.getB22a(),null);
        ReturnDataDTO B22b = new ReturnDataDTO("应急发电机组、应急供电等电气系统",data.getB22b(),null);
        ReturnDataDTO B22c = new ReturnDataDTO("消防安全设施",data.getB22c(),null);
        ReturnDataDTO B22d = new ReturnDataDTO("救生设备设施",data.getB22d(),null);
        ReturnDataDTO B22e = new ReturnDataDTO("甲板吊车",data.getB22e(),null);
        ReturnDataDTO B22f = new ReturnDataDTO("钻井绞车",data.getB22f(),null);
        ReturnDataDTO B22g = new ReturnDataDTO("气动小绞车",data.getB22g(),null);
        ReturnDataDTO B22h = new ReturnDataDTO("载人绞车",data.getB22h(),null);

        List<ReturnDataDTO> B22List = new ArrayList<>();
        B22List.add(B221);
        B22List.add(B222);
        B22List.add(B223);
        B22List.add(B224);
        B22List.add(B225);
        B22List.add(B226);
        B22List.add(B227);
        B22List.add(B228);
        B22List.add(B229);
        B22List.add(B22a);
        B22List.add(B22b);
        B22List.add(B22c);
        B22List.add(B22d);
        B22List.add(B22e);
        B22List.add(B22f);
        B22List.add(B22g);
        B22List.add(B22h);

        ReturnDataDTO B231 = new ReturnDataDTO("提升旋转系统",data.getB231(),null);
        ReturnDataDTO B232 = new ReturnDataDTO("循环系统",data.getB232(),null);
        ReturnDataDTO B233 = new ReturnDataDTO("井控系统",data.getB233(),null);
        ReturnDataDTO B234 = new ReturnDataDTO("动力及电气系统",data.getB234(),null);
        ReturnDataDTO B235 = new ReturnDataDTO("仪表通讯系统",data.getB235(),null);
        ReturnDataDTO B236 = new ReturnDataDTO("安全系统",data.getB236(),null);



        List<ReturnDataDTO> B23List = new ArrayList<>();
        B23List.add(B231);
        B23List.add(B232);
        B23List.add(B233);
        B23List.add(B234);
        B23List.add(B235);
        B23List.add(B236);

        ReturnDataDTO B21 = new ReturnDataDTO("承压试验",data.getB21(),null);
        ReturnDataDTO B22 = new ReturnDataDTO("功能试验",data.getB22(),B22List);
        ReturnDataDTO B23 = new ReturnDataDTO("直观检查",data.getB23(),B23List);

        List<ReturnDataDTO> B2List = new ArrayList<>();
        B2List.add(B21);
        B2List.add(B22);
        B2List.add(B23);

        ReturnDataDTO B2 = new ReturnDataDTO("设备设施本体风险",data.getB2(),B2List);


        ReturnDataDTO B1 = new ReturnDataDTO("作业井风险",data.getB1(),null);
        ReturnDataDTO B3 = new ReturnDataDTO("安全管理文件",data.getB3(),null);
        ReturnDataDTO B5 = new ReturnDataDTO("作业人员风险",data.getB5(),null);


        //构建B------B4
        ReturnDataDTO B41 = new ReturnDataDTO("船级及法定证书",data.getB41(),null);
        ReturnDataDTO B42 = new ReturnDataDTO("钻井设备证书",data.getB42(),null);
        ReturnDataDTO B43 = new ReturnDataDTO("钻井液净化设备及压力管线证书",data.getB43(),null);
        ReturnDataDTO B44 = new ReturnDataDTO("井控设备证书",data.getB44(),null);
        ReturnDataDTO B45 = new ReturnDataDTO("动力及辅助设备证书",data.getB45(),null);
        ReturnDataDTO B46 = new ReturnDataDTO("固井设备及管线证书",data.getB46(),null);
        ReturnDataDTO B47 = new ReturnDataDTO("环保设备证书",data.getB47(),null);
        ReturnDataDTO B48 = new ReturnDataDTO("救生设备证书",data.getB48(),null);
        ReturnDataDTO B49 = new ReturnDataDTO("探测及报警系统证书",data.getB49(),null);
        ReturnDataDTO B4a = new ReturnDataDTO("消防设备设施证书",data.getB4a(),null);
        ReturnDataDTO B4b = new ReturnDataDTO("通信及航行设备证书",data.getB4b(),null);
        ReturnDataDTO B4c = new ReturnDataDTO("钻井装置基本资料",data.getB4c(),null);

        List<ReturnDataDTO> B4List = new ArrayList<>();
        B4List.add(B41);
        B4List.add(B42);
        B4List.add(B43);
        B4List.add(B44);
        B4List.add(B45);
        B4List.add(B46);
        B4List.add(B47);
        B4List.add(B48);
        B4List.add(B49);
        B4List.add(B4a);
        B4List.add(B4b);
        B4List.add(B4c);

        ReturnDataDTO B4 = new ReturnDataDTO("设备设施资料",data.getB4(),B4List);

        List<ReturnDataDTO> BList = new ArrayList<>();


        ReturnDataDTO B = new ReturnDataDTO("作业前风险评级",data.getB(),BList);

        BList.add(B1);
        BList.add(B2);
        BList.add(B3);
        BList.add(B4);
        BList.add(B5);
        B.setChildren(BList);

        rData.add(B);

        return rData;
    }
}
